package thread;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: wx
 * Date: 2023-12-06
 * Time: 23:42
 */
// start 和 run 的区别
// [start 和 run 是互不相干的内容].

class MyThread3 extends Thread {
    @Override
    public void run() {
        while (true) {
            System.out.println("hello");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }

    }
}
public class ThreadDemo10 {

    public static void main1(String[] args) throws InterruptedException {
        Thread t = new MyThread3();
        //这里会创建一个新线程
        t.start();

        //原来的线程会依旧运行后续的循环
        while(true) {
            System.out.println("hello main");
            Thread.sleep(1000);
        }
        //这里是两个区分开的线程
    }

    public static void main(String[] args) throws InterruptedException {
        Thread t = new MyThread3();
        t.run();
        // 执行到 run 里边
        // 代码只能执行到 run 这个方法,下方 main 中的循环是无法执行到的.
        while(true) {
            System.out.println("hello main");
            Thread.sleep(1000);
        }
    }

    //上述连个代码看着执行结果是一致的,但是区别确实大大滴有
    // 用 run 没有创建出新的线程 ,这个操作还是在主线程中,打印 hello
    // 用 start 是创建了一个新的线程,由新线程执行 hello.
}
